Multi-touch uses, gestures, and implementation

ABSTRACT

A tablet PC having an interactive display, which is touchscreen enabled, may be enhanced to provide a user with superior usability and efficiency. A touchscreen device may be configured to receive multiple concurrent touchscreen contacts. The attributes of the multiple concurrent touchscreen contracts may be mapped to operations performed on the computing device. As a result, a user can trigger the execution of the toggle accessibility aid operation and the screen rotation operation with greater convenience. Moreover, the tablet PC may be configured to map an operation to a hand gesture or input.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of co-pending, commonly owned U.S.patent application Ser. No. 11/433,643, filed May 12, 2006, entitled“MULTI-TOUCH USES, GESTURES, AND IMPLEMENTATION,” the entirety of whichis herein incorporated by reference.

BACKGROUND

The interaction between computing devices and users continues to improveas computing platforms become more powerful and able to respond to auser in many new and different ways. A user is no longer required toonly type on a keyboard in order to control applications and input data.The development of a graphic user interface system, like that providedby Microsoft Corporation's WINDOWS® operating system, has greatlyimproved the ease with which a user can interact with a computing deviceby enabling a user to input actions and make selections in a morenatural and intuitive manner. The ease with which a user can inputcontrol actions is particularly important in applications where the needto provide input quickly and efficiently is important, e.g., videogames, virtual environments, file/folder management, etc. In the past,users typically interacted with virtual environments by manipulating amouse, joystick, wheel, game pad, track ball, or other user input deviceto carry out some operations as defined by the software program thatproduces the virtual environment.

One form of user input employs displays that are responsive to the touchof a user's finger or a stylus. These touch-sensitive devices arebecoming more common in computing systems. They are very convenient asthey allow a user to make natural gestures familiar to the user in othercontexts, such as by entering handwriting using a stylus. Many of thesedevices also allow input to be provided by non-stylus objects, such as auser's fingertip. Touch-sensitive displays can be pressure activated,respond to electrical capacitance or changes in magnetic fieldintensity, employ surface acoustic waves, respond to changes inbrightness by detecting light or shadow from a finger or object over thedisplay, or respond to other conditions that indicate the location of afinger or stylus on the display. As a result, a user can more directlyinteract with an application or operating system on a computing device.For example, the user may touch the touch-sensitive display with asingle finger to select a virtual object and then drag the selectedvirtual object to a new position on the touch-sensitive display. Theterm touchscreen or interactive display device will be used herein torefer to such surfaces, displays, or devices that are configured todetect the touch of a stylus and/or a non-stylus object.

Generally, touch sensitive, capacitive, or electromagnetic sensitivedisplay surfaces lack good imaging resolution, inadequately distinguishshape and orientation of objects, and are deficient in sensing multipleobjects in contact with the display surface at one time. Also, apressure sensitive display surface requires actual contact with thedisplay surface and cannot respond to objects that are in proximity withthe display surface. Accordingly, it would be desirable for aninteractive display device to respond to specific gestures made with theuser's finger(s) or other objects that are detected by the interactivedisplay device.

SUMMARY

An interactive display device for receiving multiple concurrent inputsor gestures from a user in order to execute intuitive or user-configuredoperations on a computing system is disclosed. In accordance withaspects of the invention, a computing system with a touchscreen deviceincluding an interactive display device for performing an operation onthe computing system in response to user input or gestures is disclosed.The user input or gestures may be multiple concurrent touchscreencontacts or multiple concurrent touchscreen contacts that change along agenerally predefined pattern. In one example, a user may execute atoggle accessibility aid operation on the computing device by using twofingers on the interactive display device. In another example, a usermay execute a screen rotation operation moving all four fingers andthumb in a jar lid opening path along the surface of the interactivedisplay device.

Furthermore, a computer-readable medium storing computer-executableinstructions for performing aspects of the invention is disclosed. Thecomputer-readable instructions may exist at one or more levels of thecomputing system, e.g., device driver level, operating system level,application level, or others.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects of the invention are illustrated by way of example and notlimited in the accompanying figures in which like reference numeralsindicate similar elements and in which:

FIG. 1 is an illustrative computing environment in accordance withaspects of the invention.

FIG. 2 is an illustrative computing device in accordance with aspects ofthe invention.

FIG. 3 depicts a flowchart of a user input for performing a toggleaccessibility aid operation in accordance with various aspects of theinvention.

FIG. 4 depicts a flowchart of a user gesture for performing a screenrotation operation in accordance with various aspects of the invention.

FIG. 5 diagrams a mapping in memory of user inputs or gestures and theircorresponding operations.

FIG. 6 shows an illustrative screenshot of one example of a screenaccessibility aid in accordance with aspects of the invention.

FIG. 7 shows an illustrative screenshot of another example of a screenaccessibility aid in accordance with aspects of the invention.

DETAILED DESCRIPTION

Aspects of the present invention relate to performing an operation on acomputing device, such as a tablet, in response to input or gesturesfrom a user of a touch-sensitive input device. As a versatile inputmethod, touch-sensitive input devices (e.g., touchscreen devices) inaccordance with aspects of the invention can perform a variety of tasksincluding, but not limited to, support for multiple simultaneoustouchscreen contacts (i.e., multi-touch support). For example, acomputing device equipped with a conventional touchscreen device mayprovide proper on-screen keyboard support for a user. Meanwhile,multi-touch capabilities allow the user to hold the shift key or anothermodifier key with one finger while typing with another. Meanwhile, in acollaborative environment, a touchscreen device in accordance withaspects of the invention provides support for concurrent input frommultiple users, e.g., in an electronic whiteboard scenario. Furthermore,a touchscreen device in accordance with aspects of the inventionprovides support for multiple input streams in ISV applications such asgraphics applications supporting finger painting.

In accordance with aspects of the invention, a user of a touchscreendevice on a computing system may create intuitive gestures or modifyexisting gestures with multiple fingers, chording (e.g. multi-fingeredflicks for secondary actions), or “spiking” (e.g., a finger flick withan immediate opposite finger flick without lifting the finger from thetouchscreen device) and preconfigure the system to perform an operationin response to the gesture. For example, a single-fingered flick spikingaction may be used for primary actions. For example, a user may togglevisibility or availability of an accessibility aid (e.g., a hoverwidget, touch pointer, soft keyboard, etc.) in response to apredetermined gesture or input. In another example, a user may changethe orientation of viewable objects displayed by the system (e.g., ascreen rotation) in response to a predetermined gesture. After review ofthe entirety disclosed herein, one skilled in the art will appreciatethat there are a number of gestures that are intuitive and wouldtranslate well to a touchscreen device in accordance with aspects of theinvention.

Illustrative Computing Environment

With reference to FIG. 1, an illustrative system for implementing theinvention includes a computing device, such as computing device 100. Inits most basic configuration, computing device 100 typically includes atleast one processing unit 102 and memory 104. Depending on the exactconfiguration and type of computing device, memory 104 may be volatile(such as RAM), non-volatile (such as ROM, flash memory, etc.) or somecombination of the two. This most basic configuration is illustrated inFIG. 1 by dashed line 106. Additionally, device 100 may also haveadditional features/functionality. For example, device 100 may alsoinclude additional storage (removable and/or non-removable) including,but not limited to, magnetic or optical disks or tape. Such additionalstorage is illustrated in FIG. 1 by removable storage 108 andnon-removable storage 110. Computer storage media includes volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information such as computer readableinstructions, data structures, program modules or other data. Memory104, removable storage 108 and non-removable storage 110 are allexamples of computer storage media. Computer storage media includes, butis not limited to, RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other opticalstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or any other medium which can be used tostore the desired information and which can accessed by device 100. Anysuch computer storage media may be part of device 100.

Device 100 may also contain communications connection(s) 112 that allowthe device to communicate with other devices. Communicationsconnection(s) 112 is an example of communication media. Communicationmedia typically embodies computer readable instructions, datastructures, program modules or other data in a modulated data signalsuch as a carrier wave or other transport mechanism and includes anyinformation delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media includes wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared and other wireless media. The term computerreadable media as used herein includes both storage media andcommunication media.

Device 100 may also have input device(s) 114 such as keyboard, mouse,pen, voice input device, touch input device, touchscreen device,interactive display device, etc. Output device(s) 116 such as a display,speakers, printer, etc. may also be included.

Aspects of the invention may be described in the general context ofcomputer-executable instructions, such as program modules, beingexecuted by a computer. Generally, program modules include routines,programs, objects, components, data structures, etc., that performparticular tasks or implement particular abstract data types. Aspects ofthe invention may also be practiced in distributed computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed computingenvironment, program modules may be located in both local and remotecomputer storage media including memory storage devices.

FIG. 2 depicts an illustrative tablet PC 208 that can be used inaccordance with various aspects of the invention. Any or all of thefeatures, subsystems, and functions in the system of FIG. 1 can beincluded in the tablet of FIG. 2. Tablet 208 includes a large displaysurface 204, e.g., a digitizing flat panel display, preferably, a liquidcrystal display (LCD) screen. Using styluses (202, 210), a user canselect, highlight, and/or write on the interactive display device screen204. Additionally, a user's own finger(s) could be the stylus (202, 210)and used for selecting or indicating portions of the displayed image ona touch-sensitive or proximity-sensitive device. Examples of suitabledigitizing display surfaces 204 include electromagnetic pen digitizers,such as Mutoh or Wacom pen digitizers. Other types of digitizers, e.g.,optical digitizers and capacitive digitizers, may also be used. Tablet208 interprets gestures made using styluses (202, 210) or the user'shand in order to, among other things, manipulate data, enter text,create drawings, perform preconfigured operations, and/or executeconventional computer application tasks such as spreadsheets, wordprocessing programs, and the like. Region 206 shows a feedback region orcontact region permitting the user to determine where the styluses (202,210) has contacted the display surface 204.

In various embodiments, the system provides an ink platform as a set ofCOM (component object model) services that an application can use tocapture, manipulate, and store ink. One service enables an applicationto read and write ink using the disclosed representations of ink. Theink platform may also include a mark-up language including a languagelike the extensible markup language (XML). Further, the system may useDCOM as another implementation. Yet further implementations may be usedincluding the Win32 programming model and the .Net programming modelfrom Microsoft Corporation.

FIG. 3, in accordance with various aspects of the invention, depicts aflowchart of a computer-implemented method for performing an operationon a computing system in response to input received from a user. In oneexample, the computing system may be a tablet computer 208. The tabletmay be comprised of a touchscreen device including an interactivedisplay device. By way of example, a user of the tablet may use his orher hand to make contact with the touchscreen device to interact, amongother things, with the objects displayed on a screen of the interactivedisplay device.

In step 302, the touchscreen device receives input provided by the user.In accordance with aspects of the invention, the user may providemultiple concurrent touchscreen contacts. The input has attributescorresponding to each touchscreen contact. Some examples of attributesof a touchscreen contact include, but are not limited to, the size(e.g., dimensions) of the contact area, absolute position of the contactarea, relative position of the contact area (e.g., position relative toother concurrent contacts), amount of pressure provided at the contactarea, and other characteristics of inputs for a touchscreen device knownto those of skill in the art.

In step 304, the user input is processed in accordance with aspects ofthe invention. Processing the user input includes, but is not limitedto, identifying the attributes of each touchscreen contact andidentifying an operation, if any, to perform in response to the input.For example, a computing system in accordance with aspects of theinvention may identify multiple concurrent touchscreen contacts atdifferent positions (i.e., locations) on the touchscreen device. By wayof example, a first touchscreen contact may be located at an absoluteposition ten pixels down and forty pixels to the right of the upper-leftcorner of the touchscreen device. A second touchscreen contact may belocated at an absolute position five pixels down and fifty pixels to theright of the upper-left corner of the touchscreen device. In addition,the touchscreen device may identify the dimensions of each of themultiple concurrent touchscreen contacts.

In accordance with various aspects of the invention, the computingsystem (e.g., tablet) may be preconfigured with a mapping between userinputs and operations that may be performed on the computing system. Inthe prior example, the attributes of the multiple concurrent touchscreencontacts corresponding to the input indicate that two fingers were usedto provide input to the touchscreen device. Assuming the computingsystem had been preconfigured with a mapping between a toggleaccessibility aid operation (e.g., the toggle touch pointer widgetoperation) and the attributes described above, then the computing systemwould, in step 306, identify the appropriate operation to perform.

As a result, in step 308, the computing system performs a toggleaccessibility aid operation. In the prior example, the input provided bythe user indicated that the toggle accessibility aid operation should beperformed (in step 308). The toggle accessibility aid operation in thisparticular example is the toggle touch pointer widget operation, whichresults in the toggling of the visibility of a touch pointer widget onthe interactive display device. A user may use a touch pointer widget,which is similar to a virtual mouse pointer, to more precisely designatea position on the screen of the interactive display device, asillustrated in FIG. 6. Another example of a toggle accessibility aidoperation is the toggle soft keyboard operation, which results in thetoggling of the visibility of a soft keyboard widget on the interactivedisplay device. FIG. 7 shows an illustrative depiction of the softkeyboard widget 702 on an interactive display device. A user may type ortap on the soft keyboard widget 702 to create inputs similar to aconventional keyboard. Other examples of accessibility aids are screenreaders, magnifiers, and other widgets known to those of skill in theart.

Referring to FIG. 6, the touch pointer widget 602 is a graphicaldepiction adjacent to or surrounding a pointer (e.g., a mouse cursor604). By placing a finger on the area (e.g., area 606) represented bythe touch pointer widget 602 and dragging, the user may manipulate thepointer 604 in a more precise manner then may be possible with arelatively blunt finger. As can be appreciated, the touch pointer widget602 depicted in FIG. 6 resembles a conventional mouse. While otherdesigns may provide improved interface, an advantage of such aconventional shape such as the mouse is that it is more intuitive forthe user as most users are familiar with using a mouse to move a cursor.The user may also press the left and right button so as to simulate aright or left button press on a mouse.

Continuing with the prior example, assuming the touch pointer widget 602was previously invisible, the user may instruct the computing device totoggle the visibility of the touch pointer widget (i.e., make the touchpointer widget visible) by tapping the interactive display surface 204of the touchscreen device with two fingers, e.g., the pointer finger andmiddle finger. In response, the computing system will perform thepreconfigured operation.

Although the prior example preconfigured a two finger concurrenttouchscreen device input to correspond to the toggle touch pointerwidget operation, one skilled in the art will appreciate that an inputconsisting of any number of fingers may be mapped to the operation.Moreover, variations in other attributes of the touchscreen contacts(e.g., amount of pressure at the touchscreen contact area) may be usedto designate other operations. For example, an input from a user usingtwo fingers with only slight pressure at the touchscreen contact areamay be preconfigured to the toggle touch pointer widget operation, andan input from a user using two fingers with heavy pressure at thetouchscreen contact area may be preconfigured to another operation,e.g., a toggle soft keyboard widget operation.

FIG. 4, in accordance with various aspects of the invention, depicts aflowchart of a computer-implemented method for performing an operationon a computing system in response to a gesture received from a user. Inone example, the computing system may be a tablet computer. The tabletmay be comprised of a touchscreen device including an interactivedisplay device. By way of example, a user of the tablet may use his orher hand to make contact with the touchscreen device to interact, amongother things, with the objects displayed on a screen of the interactivedisplay device.

In step 402, the touchscreen device receives a gesture from a user ofthe computing system. In accordance with aspects of the invention, thegesture may be comprised of multiple concurrent touchscreen contactsthat change along a generally predefined pattern. Some examples ofattributes of a touchscreen contact include, but are not limited to, thesize (e.g., dimensions) of the contact area, absolute position of thecontact area, relative position of the contact area (e.g., positionrelative to other concurrent contacts), amount of pressure provided atthe contact area, and other characteristics of inputs for a touchscreendevice known to those of skill in the art.

In step 404, the gesture is processed in accordance with aspects of theinvention. Processing the gesture includes, but is not limited to,identifying the attributes of each concurrent touchscreen contact andidentifying an operation, if any, to perform in response to the gesture.For example, a computing system in accordance with aspects of theinvention may identify multiple concurrent touchscreen contacts atdifferent positions (i.e., locations) on the touchscreen device. Afirst, second, third, and fourth concurrent touchscreen contact may belocated in a semi-circular pattern on the touchscreen device. A fifthand final concurrent touchscreen contact may be located in a relativeposition below the semi-circular pattern formed by the first, second,third, and fourth touchscreen contacts. In addition, the touchscreendevice may identify other attributes of the multiple concurrenttouchscreen contacts for use in identifying a correspondingpreconfigured operation to execute. In addition, any changes in theattributes of the concurrent multiple touchscreen contacts may bemonitored to identify any predefined patterns. For example, a change inthe positions of the multiple concurrent touchscreen contacts in agenerally semi-circular path along the surface of the touchscreen devicemay indicate that the user desires to perform the screen rotationoperation, while a change in position in a generally linear path couldalternately be mapped to a scrolling or panning operation.

In accordance with various aspects of the invention, the computingsystem (e.g., tablet) may be preconfigured with a mapping betweengestures and operations that may be performed on the computing system.In the prior example, the attributes of the multiple concurrenttouchscreen contacts corresponding to the gesture indicate that fourfingers and a thumb were used on the touchscreen device. In addition,the multiple concurrent touchscreen contacts were moved in a generallysemi-circular path along the touchscreen device surface, similar to ajar lid opening motion. Assuming the computing system had beenpreconfigured with a mapping between the screen rotation operation(e.g., tablet screen rotation operation) and the attributes describedabove, then the computing system would, in step 406, identify theappropriate operation to perform.

As a result, in step 408, the computing system performs a screenrotation operation. In the prior example, the gesture provided by theuser indicated that the screen rotation operation should be performed(in step 408). The screen rotation operation results in all viewableobjects (e.g., icons, wallpapers, taskbar, dialog boxes, etc.) displayedon the interactive display device to be rotated by a predeterminedangle, e.g., ninety degrees. The screen rotation operation in accordancewith aspects of the invention may be particularly advantageous for atablet user that chooses to easily switch his or her tablet between alandscape and portrait orientation. In this example, the user may simplytouch the interactive display screen with all four fingers and thumbplaced in a circular formation (e.g., as if grasping a jar lid) androtate his or her hand along the surface of the screen. In response, thecomputing system will perform the preconfigured operation (i.e., thescreen rotation operation).

Although the prior example preconfigured a four fingers and thumbgesture to correspond to the screen rotation operation, one skilled inthe art will appreciate that a gesture consisting of only two or morefingers and/or no thumb may be mapped to the operation. Moreover,variations in other attributes of the touchscreen contacts (e.g., amountof pressure at the touchscreen contact area) may be used to designateother operations. In addition, one skilled in the art will appreciatethat the predetermined angle by which viewable objects are rotated mayvary according to the needs of the user and/or system. For example, inone embodiment in accordance with aspects of the invention, thepredetermined angle may be determined at the time of the multipleconcurrent touchscreen contacts by the amount of circular rotationperformed in the user's gesture. Furthermore, in some examples thescreen rotation operation may be used to rotate a selected object on theinteractive display device, for example, in a computer graphics ordrawing program.

After review of the entirety disclosed herein, one skilled in the artwill appreciate that in accordance with aspects of the invention, theexecution of any operation may be preconfigured in response to auser-defined input or gesture. For example, the window resize operationmay be mapped to a user concurrently using two fingers on a windowobject in an interactive display device. The user may use the twofingers to conveniently resize and/or position the window or control boxas desired. In another example, a user may use two fingers to selectitems (e.g., file icons, folder icons, etc.) displayed in an interactivedisplay device, while using the second finger to add or delete itemsfrom the list of selected items. These operations are similar totraditional ctrl-clicking operations, but enhance usability and userefficiency. In yet another example, a computing device may bepreconfigured to allow a user's pinching gesture to zoom in and out.Furthermore, a “finger roll” gesture (i.e., contact with the touchscreendevice beginning with the pinky finger, then ring finger, then middlefinger, followed by the index finger and then the thumb) may bedesignated for an alt-tab or other sorting/selecting operation.

In accordance with various aspects of the invention, the computingsystem (e.g., tablet 208) may be preconfigured with a mapping betweeninputs/gestures and operations that may be performed on the computingsystem. FIG. 5 diagrams an illustrative mapping 500 stored in thecomputing system 100 for preconfiguring user inputs/gestures tooperations. In a prior example, a gesture 502 using four fingers and athumb that change positions in a generally semi-circular path on atouchscreen device was preconfigured to correspond to the screenrotation operation 504. Likewise, in a prior example, a user input 506using two fingers on a touchscreen device was preconfigured tocorrespond to the toggle accessibility aid operation 508. Assuming acomputing system in accordance with aspects of the invention had beenpreconfigured with a mapping between the operations and the concurrenttouchscreen contact attributes described above, then the computingsystem would identify the appropriate operation to perform.

In accordance with various aspects of the invention, thecomputer-executable instructions for identifying an operation to performon the computing system in response to a preconfigured user input orgesture may be stored in a computer-readable medium in the computingsystem. The computer-executable instructions may be executed at thedevice driver level, operating system level, application level, or otherlevel.

In one example at the device driver level, frequency characteristics ofthe touchscreen device may be adjusted to allow for multiple concurrenttouchscreen contacts. For instance, a conventional touchscreen devicethat reports a single touchscreen contact at 133 hertz (hz) may beadjusted to report two concurrent touchscreen contacts at 66 hz each. Inanother example, three concurrent touchscreen contacts may be reportedat 44 hz each. Although this embodiment in accordance with aspects ofthe invention scaled nicely for varying number of touchscreen contracts,it lowers input resolution by dividing a constant reporting frequencyamong multiple concurrent touchscreen contacts.

In another example at the device driver level, the size of the packetsprovided by the touchscreen device are increased to accommodate multipleconcurrent touchscreen contacts. For example, instead of reporting asingle touchscreen contract's worth of information (e.g., 1 kilobyte ofinformation) in a given update, the system reports ten concurrenttouchscreen contacts in a packet carrying 10 kilobytes of information.The disadvantage of this approach is that unless the user is constantlyproviding ten concurrent touchscreen contacts, packet size is wasted.Moreover, in some systems the driver is limited to reporting a finitenumber of concurrent touchscreen contacts. The advantage is thereporting frequency is unaltered, assuming the bus supports theincreased packet size.

In yet another example at the device driver level, the touchscreendevice may expose two logical devices, one logical device that functionssimilar to a traditional touchscreen device (e.g., a digitizer thatreports a single touchscreen contact) and another logical device thatreports full information about multiple concurrent touchscreen contacts.In this example, applications may pull the full information from thedevice and/or driver with an appropriate request, e.g., a requestcomprising the number of touchscreen contacts, attributes for a giventouchscreen contact, etc. In another example, the full informationreturned may be an image of the touchscreen contact corresponding toevery pixel on the interactive display device screen (e.g., a grey-scaleimage showing pressure or distance from the device for every pixel). Ina variation on the above example, a second logical device may beunnecessary if an additional flag is included to indicate the presenceof additional data. An application or operating system may then chooseto retrieve the additional data using an IOCTL, for example.

In accordance with various aspects of the invention, algorithms andheuristics may be used to receive and process input and/or gestures. Forexample, in some examples, applications on the computing device may usepalm rejection heuristics to predict when a touchscreen contact shouldbe ignored. For example, if the size attribute of a touchscreen contactis too large (e.g., likely a hand's palm), it may be advantageous toignore the contact. In another example, an application on the computingdevice may desire to ignore multiple concurrent contacts altogether. Insuch an instance, the operating system of the computing device maymaintain information about the state of the application and the user. Itmay also be beneficial in some embodiments of the invention to dividecomputational logic between the device driver and operating system. Oneskilled in the art will appreciate that it may be beneficial to trackmulti-touch contact attributes to, for example, determine when a fingeris tapped on the touchscreen repeatedly. A consistent cursor identifiermay be assigned to the gesture or input.

In addition, one skilled in the art will appreciate that it may beadvantageous to provide an application programmer's interface (API) tointerface with and utilize the numerous features and functionality ofaspects of the invention. For example, standard notifications, such asStylusDown, Packets, and SytlusUp, may be used to request fullinformation about multiple concurrent touchscreen contacts from theoperating system. In addition, a set of ready-to-use controls andpre-built plugins for existing platform frameworks (e.g.,RealTimeStylus) may be used in a computing system configured inaccordance with aspects of the invention.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims. Numerous other embodiments,modifications and variations within the scope and spirit of the appendedclaims will occur to persons of ordinary skill in the art from a reviewof this disclosure.

1-20. (canceled)
 21. A computing device comprising: a touchscreenincluding an interactive display, the touchscreen being configured toreceive a first input comprising multiple concurrent touchscreencontacts; and at least one processing unit configured to: identify oneor more attributes of individual ones of the multiple concurrenttouchscreen contacts received at the touchscreen; and perform anoperation on the computing system in response to the first input and theone or more attributes, the operation including toggling visibility of atouch pointer widget adjacent to or surrounding a cursor on theinteractive display; the touchscreen being further configured to receivea second input comprising a touchscreen contact within an arearepresented by the touch pointer widget on the interactive display,wherein the touchscreen contact is dragged across a screen of theinteractive display; and the at least one processing unit being furtherconfigured to move, in response to the second input, the touch pointerwidget and the cursor across the screen of the interactive display incorrespondence with the touchscreen contact being dragged across thescreen.
 22. The computing device of claim 21, wherein the one or moreattributes indicate two fingers in contact with the touchscreen in a tapgesture.
 23. The computing device of claim 22, wherein the at least oneprocessing unit is configured to determine that the two fingers are apointer finger and a middle finger on a hand of a user.
 24. Thecomputing device of claim 21, further comprising memory storing amapping between the operation and the first input corresponding to theone or more attributes.
 25. The computing device of claim 21, furthercomprising a user interface that is configured to rotate on theinteractive display in response to a gesture received at thetouchscreen, the gesture including multiple concurrent touchscreencontacts that change in position along a predefined pattern.
 26. Thecomputing device of claim 21, wherein the touchscreen is furtherconfigured to receive a third input comprising another touchscreencontact (i) within the area represented by the touch pointer widget onthe interactive display and (ii) on a control button of the touchpointer widget, and wherein the at least one processing unit is furtherconfigured to perform, in response to the third input, a selectionoperation by the cursor.
 27. The computing device of claim 21, whereinthe at least one processing unit is further configured to determine apressure applied to the touchscreen by the first input, and wherein theat least one processing unit is further configured to perform theoperation if the first input is performed with a first pressure that isbelow a threshold pressure.
 28. A computing device comprising: atouchscreen including an interactive display, the touchscreen beingconfigured to receive a gesture comprising multiple concurrenttouchscreen contacts; and at least one processing unit configured to:process the gesture to identify one or more attributes of individualones of the multiple concurrent touchscreen contacts; and perform anoperation in response to receiving and processing the gesture, theoperation including toggling visibility of a touch pointer widgetadjacent to or surrounding a pointer element on the interactive display;the touchscreen being further configured to receive an input comprisinga touchscreen contact (i) within an area represented by the touchpointer widget on the interactive display and (ii) on a control buttonof the touch pointer widget; and the at least one processing unit beingfurther configured to perform, in response to the input, a selectionoperation by the pointer element.
 29. The computing device of claim 28,wherein the one or more attributes indicate four fingers and a thumb incontact with the touchscreen.
 30. The computing device of claim 28,wherein the touchscreen is further configured to receive a second inputcomprising another touchscreen contact within the area represented bythe touch pointer widget on the interactive display, the othertouchscreen contact being dragged across at least a portion of theinteractive display, and wherein the at least one processing unit isfurther configured to move, in response to the second input, the touchpointer widget and the pointer element across at least the portion ofthe interactive display in correspondence with the other touchscreencontact being dragged across the interactive display.
 31. The computingdevice of claim 28, wherein the at least one processing unit is furtherconfigured to determine a pressure applied to the touchscreen by themultiple concurrent touchscreen contacts of the gesture, and wherein theat least one processing unit is further configured to perform theoperation if the pressure applied to the touchscreen by the multipleconcurrent touchscreen contacts is applied at a first pressure that isbelow a threshold pressure.
 32. The computing device of claim 28,further comprising memory storing a mapping between the operation andthe gesture corresponding to the one or more attributes.
 33. A computingdevice comprising: a pressure sensitive touchscreen including aninteractive display, the pressure sensitive touchscreen being configuredto receive a gesture comprising multiple concurrent touchscreencontacts; and at least one processing unit configured to: determine apressure applied to the pressure sensitive touchscreen by the multipleconcurrent touchscreen contacts of the gesture; perform a firstoperation if the pressure applied to the pressure sensitive touchscreenby the multiple concurrent touchscreen contacts is applied at a firstpressure, the first operation including toggling visibility of a touchpointer widget on the interactive display; and perform a secondoperation if the pressure applied to the pressure sensitive touchscreenby the multiple concurrent touchscreen contacts is applied at a secondpressure that is different than the first pressure, the second operationincluding toggling visibility of a soft keyboard widget on theinteractive display.
 34. The computing device of claim 33, wherein thegesture includes at least one finger and a thumb in contact with thepressure sensitive touchscreen.
 35. The computing device of claim 33,wherein the gesture includes two fingers in contact with the pressuresensitive touchscreen.
 36. The computing device of claim 33, wherein thegesture is processed through an application programming interface (API)at the operating system level.
 37. The computing device of claim 33,wherein the second pressure is greater than the first pressure.
 38. Thecomputing device of claim 33: wherein the at least one processing unitis further configured to perform the first operation by displaying thetouch pointer widget adjacent to or surrounding a cursor on theinteractive display; wherein the pressure sensitive touchscreen isfurther configured to receive an input comprising a touchscreen contactwithin an area represented by the touch pointer widget on theinteractive display, the touchscreen contact being dragged across ascreen of the interactive display; and wherein the at least oneprocessing unit is further configured to move, in response to the input,the touch pointer widget and the cursor across the screen of theinteractive display in correspondence with the touchscreen contact beingdragged across the screen.
 39. The computing device of claim 33: whereinthe at least one processing unit is further configured to perform thefirst operation by displaying the touch pointer widget adjacent to orsurrounding a cursor on the interactive display; wherein the pressuresensitive touchscreen is further configured to receive an inputcomprising a touchscreen contact (i) within an area represented by thetouch pointer widget on the interactive display and (ii) on a controlbutton of the touch pointer widget; and wherein the at least oneprocessing unit is further configured to perform, in response to theinput, a selection operation by the cursor.
 40. The computing device ofclaim 33, further comprising memory storing a mapping between: the firstoperation and the gesture corresponding to the first pressure, and thesecond operation and the gesture corresponding to the second pressure.